package com.turing.post.cardmanagement.util;

import java.io.Serializable;
import java.math.BigInteger;
import java.util.Date;

import javax.persistence.Column;
import javax.persistence.Entity;
import javax.persistence.Id;
import javax.persistence.Table;

/**
 * 卡特殊业务登记薄
 * @author kz
 * @date 2013-01-16
 */
@SuppressWarnings("serial")
@Entity
@Table(name = "CardRegister")
public class CardRegister implements Serializable {
	
	/**
	 * 10 – 冻结
	 */
	public final static String CARDLOSS_TRANTYPE_FREEZE = "10";
	/**
	 * 11 – 解冻结
	 */
	public final static String CARDLOSS_TRANTYPE_THAW = "11";
	/**
	 * 20– 挂失换卡
	 */
	public final static String CARDLOSS_TRANTYPE_LOSS_NEWCARD = "20";
	/**
	 * 21- 换发新卡
	 */
	public final static String CARDLOSS_TRANTYPE_NEWCARD = "21";
	/**
	 * 30 – 延期
	 */
	public final static String CARDLOSS_TRANTYPE_EXTENSION = "30";
	/**
	 * 40 – 变更卡种类
	 */
	public final static String CARDLOSS_TRANTYPE_CARDCLASSIC = "40";
	/**
	 * 41 – 登记或变更实名信息
	 */
	public final static String CARDLOSS_TRANTYPE_REALINFO = "41";
	/**
	 * 主键
	 */
	private BigInteger cardRegisterId;
	/**
	 * 卡号
	 */
	private String cardNo;
	/**
	 * 主帐号
	 */
	private BigInteger masterAccNo;
	/**
	 * 发卡商号
	 */
	private String issceCompanyNo;
	/**
	 * 机构号
	 */
	private String branchNo;
	/**
	 * 持卡人姓名
	 */
	private String cardHolder;
	/**
	 * 持卡人证件类型
	 */
	private BigInteger cardHolderIdType;
	/**
	 * 持卡人证件号
	 */
	private String cardHolderIdNo;
	/**
	 * 交易类型
	 * 10 – 冻结  11 – 解冻结  20– 挂失换卡  
	 * 21- 换发新卡  30 – 延期  40 – 变更卡种类  
	 * 41 – 登记或变更实名信息
	 */
	private String tranType;
	/**
	 * 卡余额
	 */
	private BigInteger balance;
	/**
	 * 操作员
	 */
	private BigInteger operId;
	/**
	 * 交易时间
	 */
	private Date tranTime;
	/**
	 * 账务日期
	 */
	private Date tranDate;
	/**
	 * 备注
	 */
	private String remark;
	
	@Id
	@Column(name = "CARDREGISTERID", nullable = false)
	public BigInteger getCardRegisterId() {
		return cardRegisterId;
	}
	public void setCardRegisterId(BigInteger cardRegisterId) {
		this.cardRegisterId = cardRegisterId;
	}
	
	@Column(name = "CARDNO", nullable = false)
	public String getCardNo() {
		return cardNo;
	}
	public void setCardNo(String cardNo) {
		this.cardNo = cardNo;
	}
	
	@Column(name = "MASTERACCNO", nullable = false)
	public BigInteger getMasterAccNo() {
		return masterAccNo;
	}
	public void setMasterAccNo(BigInteger masterAccNo) {
		this.masterAccNo = masterAccNo;
	}
	
	@Column(name = "ISSCECOMPANYNO", nullable = false)
	public String getIssceCompanyNo() {
		return issceCompanyNo;
	}
	public void setIssceCompanyNo(String issceCompanyNo) {
		this.issceCompanyNo = issceCompanyNo;
	}
	
	@Column(name = "BRANCHNO", nullable = false)
	public String getBranchNo() {
		return branchNo;
	}
	public void setBranchNo(String branchNo) {
		this.branchNo = branchNo;
	}
	
	@Column(name = "CARDHOLDER", nullable = false)
	public String getCardHolder() {
		return cardHolder;
	}
	public void setCardHolder(String cardHolder) {
		this.cardHolder = cardHolder;
	}
	
	@Column(name = "CARDHOLDERIDTYPE", nullable = false)
	public BigInteger getCardHolderIdType() {
		return cardHolderIdType;
	}
	public void setCardHolderIdType(BigInteger cardHolderIdType) {
		this.cardHolderIdType = cardHolderIdType;
	}
	
	@Column(name = "CARDHOLDERIDNO", nullable = false)
	public String getCardHolderIdNo() {
		return cardHolderIdNo;
	}
	public void setCardHolderIdNo(String cardHolderIdNo) {
		this.cardHolderIdNo = cardHolderIdNo;
	}
	
	@Column(name = "TRANTYPE", nullable = false)
	public String getTranType() {
		return tranType;
	}
	public void setTranType(String tranType) {
		this.tranType = tranType;
	}
	
	@Column(name = "BALANCE", nullable = false)
	public BigInteger getBalance() {
		return balance;
	}
	public void setBalance(BigInteger balance) {
		this.balance = balance;
	}
	
	@Column(name = "OPERID", nullable = true)
	public BigInteger getOperId() {
		return operId;
	}
	public void setOperId(BigInteger operId) {
		this.operId = operId;
	}
	
	@Column(name = "TRANTIME", nullable = false)
	public Date getTranTime() {
		return tranTime;
	}
	public void setTranTime(Date tranTime) {
		this.tranTime = tranTime;
	}
	
	@Column(name = "TRANDATE", nullable = false)
	public Date getTranDate() {
		return tranDate;
	}
	public void setTranDate(Date tranDate) {
		this.tranDate = tranDate;
	}
	
	@Column(name = "REMARK", nullable = true)
	public String getRemark() {
		return remark;
	}
	public void setRemark(String remark) {
		this.remark = remark;
	}
	
}
